#include "loadmenu.h"
#include "ui_loadmenu.h"

LoadMenu::LoadMenu(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::LoadMenu)
{
    ui->setupUi(this);
    //登陆界面设计
    setFixedSize(700,600);
    setWindowTitle("机房预约系统");
    QFont ft;
    ft.setPointSize(15);
    ui->label->setFont(ft);
    ft.setPointSize(13);
    ui->label_user->setFont(ft);
    ui->label_pwd->setFont(ft);
    ui->pushButton->setFont(QFont("宋体",12));
    ui->pushButton_2->setFont(QFont("宋体",12));

    //创建数据库
    QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");//通过ODBC连接mysql
    //连接数据库
    db.setPort(3306);
    db.setHostName("127.0.0.1"); //数据库服务器IP
    db.setUserName("root");
    db.setPassword("13579");
    db.setDatabaseName("u_system");//此处名字是ODBC的数据源名 如果是直接与mysql连接的话此处为连接的数据库名
    //打开数据库
    if(!db.open())
    {
        QMessageBox::warning(this,"错误",db.lastError().text());
        return;
    }
    else
    {
        qDebug()<<"数据库连接成功！";
    }

}

LoadMenu::~LoadMenu()
{
    delete ui;
}

void LoadMenu::on_pushButton_2_clicked()
{
    this->close();
}

void LoadMenu::on_pushButton_clicked()
{
    QString userPwd;     //用户输入的密码
    QString truePwd;     //数据库中的密码
    QString md5Pwd;      //用户输入的加密后的密码
    QString identity;   //查询到的数据库中的身份
    QString trueName;   //查询到的数据库中的名字
    QByteArray str;
    QSqlQuery query;
    QString userId=ui->lineEdit->text();
    userPwd=ui->lineEdit_2->text();
    if(userId!=NULL&&userPwd!=NULL)
    {
    //对用户输入的密码进行md5加密
    str=QCryptographicHash::hash(userPwd.toLatin1(),QCryptographicHash::Md5);
    md5Pwd.append(str.toHex()); //以append的方式进行字符串初始化
    qDebug()<<md5Pwd;
    query.prepare("select * from user_info where user_id=?;");
    query.addBindValue(userId);
    query.exec();
    query.next();
//    qDebug()<<query.value(1).toString()<<query.value("pwd").toString();
    truePwd=query.value(2).toString();
    identity=query.value("identity").toString();
    trueName=query.value(1).toString();
    if(query.value(0).toString()==userId&&md5Pwd==truePwd)
    {
        if(identity=="admin")
        {
            admin= new Admin;
            this->hide();
            admin->show();
        }
        else if(identity=="student")
        {
            student=new Student(userId,trueName);
            this->hide();
            student->show();
        }
        else
        {
            teacher=new Teacher;
            this->hide();
            teacher->show();
        }
    }
    else
    {
        QMessageBox::warning(this,"警告","用户名或密码错误");
    }
    }
    else
    {
        QMessageBox::warning(this,"警告","请输入用户名或密码");
    }
}
